<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IRremoteESP8266: src/ir_Kelon.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IRremoteESP8266
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">ir_Kelon.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="ir__Kelon_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Copyright 2021 Davide Depau</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">// Supports:</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//   Brand: Kelon,  Model: ON/OFF 9000-12000 (KELON)</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">//   Brand: Kelon,  Model: DG11R2-01 remote (KELON168)</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">//   Brand: Kelon,  Model: AST-09UW4RVETG00A A/C (KELON168)</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">//   Brand: Hisense,  Model: AST-09UW4RVETG00A A/C (KELON168)</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#ifndef IR_KELON_H_</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define IR_KELON_H_</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifdef UNIT_TEST</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;IRsend_test.h&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRsend_8h.html">IRsend.h</a>&quot;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRutils_8h.html">IRutils.h</a>&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html">   34</a></span>&#160;<span class="keyword">union </span><a class="code" href="unionKelonProtocol.html">KelonProtocol</a> {</div>
<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a5cbd812734ed55a33aba1b5c8dc90e22">   35</a></span>&#160;  uint64_t <a class="code" href="unionKelonProtocol.html#a5cbd812734ed55a33aba1b5c8dc90e22">raw</a>;</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a89dc5481508f53095896b5b4fc688f4e">   38</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a89dc5481508f53095896b5b4fc688f4e">preamble</a>[2];</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a638145dbdf9d30d20796a9d5e931a4d8">   39</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a638145dbdf9d30d20796a9d5e931a4d8">Fan</a>: 2;</div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a5055123f4ca8f2efdd10ed3dc5d86e50">   40</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a5055123f4ca8f2efdd10ed3dc5d86e50">PowerToggle</a>: 1;</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#acce94332bf7fa92e7c52b64e63ee243b">   41</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#acce94332bf7fa92e7c52b64e63ee243b">SleepEnabled</a>: 1;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#ad43fd448895765e29c108df3233de7a6">   42</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#ad43fd448895765e29c108df3233de7a6">DehumidifierGrade</a>: 3;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a46d1647685a3c62aaf658f5971d86268">   43</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a46d1647685a3c62aaf658f5971d86268">SwingVToggle</a>: 1;</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#afefb71dce13bc346164cbbbba493eb69">   44</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#afefb71dce13bc346164cbbbba493eb69">Mode</a>: 3;</div>
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#ad6c550a067c1d16cf86cdfb048e0785f">   45</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#ad6c550a067c1d16cf86cdfb048e0785f">TimerEnabled</a>: 1;</div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#ace732d42dc9ad0f46117c5d98dc836d5">   46</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#ace732d42dc9ad0f46117c5d98dc836d5">Temperature</a>: 4;</div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a72a044058e0339bc7097cee53966a25f">   47</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a72a044058e0339bc7097cee53966a25f">TimerHalfHour</a>: 1;</div>
<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a7fd0c539dc8ec94e5962c57091c230f0">   48</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a7fd0c539dc8ec94e5962c57091c230f0">TimerHours</a>: 6;</div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a06eb8f550eea47a5620c29290d362457">   49</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a06eb8f550eea47a5620c29290d362457">SmartModeEnabled</a>: 1;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#ac0c1c5efd6837df7101355cddd2d41bb">   50</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#ac0c1c5efd6837df7101355cddd2d41bb">pad1</a>: 4;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a2e7513510d69ef845d823cab658f40ae">   51</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a2e7513510d69ef845d823cab658f40ae">SuperCoolEnabled1</a>: 1;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a07276300448ba5caa961e1d2a6714780">   52</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a07276300448ba5caa961e1d2a6714780">pad2</a>: 2;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="unionKelonProtocol.html#a244cffa76f010df00e78029afccea745">   53</a></span>&#160;    uint8_t <a class="code" href="unionKelonProtocol.html#a244cffa76f010df00e78029afccea745">SuperCoolEnabled2</a>: 1;</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;  };</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">// Constants</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a924a4138c047d7db1c5f07ff94e66f51">   58</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a924a4138c047d7db1c5f07ff94e66f51">kKelonModeHeat</a> = 0;</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a0bc24153f4463980e3db6069fdd2d1d6">   59</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a0bc24153f4463980e3db6069fdd2d1d6">kKelonModeSmart</a> = 1;  <span class="comment">// (temp = 26C, but not shown)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#aabab51724f0036fdfb8a27272ef2b0ad">   60</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#aabab51724f0036fdfb8a27272ef2b0ad">kKelonModeCool</a> = 2;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a4ced8b60523afafb93f7b86914be34d6">   61</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a4ced8b60523afafb93f7b86914be34d6">kKelonModeDry</a> = 3;    <span class="comment">// (temp = 25C, but not shown)</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a39b42afb41b16a05e188faf1e17ab1a6">   62</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a39b42afb41b16a05e188faf1e17ab1a6">kKelonModeFan</a> = 4;    <span class="comment">// (temp = 25C, but not shown)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a71f311bc7e9982f96069d186240bafb6">   63</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a71f311bc7e9982f96069d186240bafb6">kKelonFanAuto</a> = 0;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">// Note! Kelon fan speeds are actually 0:AUTO, 1:MAX, 2:MED, 3:MIN</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">// Since this is insane, I decided to invert them in the public API, they are</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">// converted back in setFan/getFan</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#acac1aee0b3063ff82283b86714722eb9">   67</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#acac1aee0b3063ff82283b86714722eb9">kKelonFanMin</a> = 1;</div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a93d7558b282b38d11e9a04e95410ff5c">   68</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a93d7558b282b38d11e9a04e95410ff5c">kKelonFanMedium</a> = 2;</div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a4bd60c6979883d711dbd1b6019164963">   69</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a4bd60c6979883d711dbd1b6019164963">kKelonFanMax</a> = 3;</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#ad0217fb386e35b899fa63c0917605de1">   71</a></span>&#160;<span class="keyword">const</span> int8_t <a class="code" href="ir__Kelon_8h.html#ad0217fb386e35b899fa63c0917605de1">kKelonDryGradeMin</a> = -2;</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#aaf96912cb4f2180a4f8e45ab15a62fdb">   72</a></span>&#160;<span class="keyword">const</span> int8_t <a class="code" href="ir__Kelon_8h.html#aaf96912cb4f2180a4f8e45ab15a62fdb">kKelonDryGradeMax</a> = +2;</div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#abc7695e69ede30a8eeed9f21f47a9ee6">   73</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#abc7695e69ede30a8eeed9f21f47a9ee6">kKelonMinTemp</a> = 18;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="ir__Kelon_8h.html#a04169c90255e4a83f9fd51f67ca07e54">   74</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelon_8h.html#a04169c90255e4a83f9fd51f67ca07e54">kKelonMaxTemp</a> = 32;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classIRKelonAc.html">   77</a></span>&#160;<span class="keyword">class </span><a class="code" href="classIRKelonAc.html">IRKelonAc</a> {</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classIRKelonAc.html#aad3fc6341d978c41eb3dab1259a1ab54">IRKelonAc</a>(uint16_t pin, <span class="keywordtype">bool</span> inverted = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                     <span class="keywordtype">bool</span> use_modulation = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a4c19f0aa6d12b41aaae296e8c89961e0">stateReset</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">  #if SEND_KELON</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#af534911523b5372e25327bf85a5b3b66">send</a>(<span class="keyword">const</span> uint16_t repeat = <a class="code" href="IRremoteESP8266_8h.html#a1a49dde7ffbd753f7756cf0c9dc6d826">kNoRepeat</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#abc971aa5df1cb04d804b1b0eab5282a2">   88</a></span>&#160;  int8_t <a class="code" href="classIRKelonAc.html#abc971aa5df1cb04d804b1b0eab5282a2">calibrate</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <a class="code" href="classIRKelonAc.html#a7384fd6a4fb513dd56ff6b5c9f40e922">_irsend</a>.<a class="code" href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">calibrate</a>(); }</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#ad6265f10ad249f82b3fcf97f42213274">ensurePower</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> on);</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">  #endif  // SEND_KELON</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a038287955eb4d2a0fa6d149d43865fcc">begin</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#aa892e8e4c9865cccb123d793ae5f9550">setTogglePower</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> toggle);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelonAc.html#acf437757e5ee534da08cf1d0ec1c7445">getTogglePower</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#af4dfb42ff38f252961a8806ae7437055">setTemp</a>(<span class="keyword">const</span> uint8_t degrees);</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#aaf519bf89bb0b93513c59051ed61a052">getTemp</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a8ecc24641976085aed802e6e1c67ea9a">setFan</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#adba50d061f4f6f2eb1dca61355c3017e">getFan</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#aec38ea2d05bfece8314c5b7a45d19dbc">setDryGrade</a>(<span class="keyword">const</span> int8_t grade);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  int8_t <a class="code" href="classIRKelonAc.html#abd5fa54411ed2bd54da47f7e71bb9411">getDryGrade</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a0c7c47dabb377efe2079b16a14f4ca75">setMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#a45d82807dee13f01f6bac9f7fe4ab42e">getMode</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a37223c374b8bb82dd5bf5059b0903b4f">setToggleSwingVertical</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> toggle);</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelonAc.html#a4fa220013c5c72afbcbeba4ac0063feb">getToggleSwingVertical</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#abe299f1f7b54ca43546522050a9902f4">setSleep</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> on);</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelonAc.html#afbc72e3dfaa1782fa84e6aae9433dd42">getSleep</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#acb502b372e6a077f7a7ed8f95f30e991">setSupercool</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> on);</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelonAc.html#ad46eec811631a9b1732bec75cccd393c">getSupercool</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#aebbebeaf41b54b6b0387b5a71fa92f28">setTimer</a>(<span class="keyword">const</span> uint16_t mins);</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  uint16_t <a class="code" href="classIRKelonAc.html#a4e24235f913ebda516a14fb6629a0a67">getTimer</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#a19d6b061a5a42de460078c32e406c058">setTimerEnabled</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> on);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelonAc.html#a5ff072da7dc5215bfb9140c638f10061">getTimerEnabled</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  uint64_t <a class="code" href="classIRKelonAc.html#a9406ac65db0b49d31d34344103faeb62">getRaw</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelonAc.html#af752008b00838cf61cc53e631abd8c84">setRaw</a>(<span class="keyword">const</span> uint64_t new_code);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRKelonAc.html#a3ac8b212ee8606bbd2f4668908daf0fa">convertMode</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> mode);</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRKelonAc.html#ae27dcc27fd6f972e20f92063b33f4ab3">convertFan</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a> fan);</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> <a class="code" href="classIRKelonAc.html#aee7fef2e11d5bfebcd866f27f46979a2">toCommonMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a> <a class="code" href="classIRKelonAc.html#a77c79c1f41429ae2dbaee0254eeb6af1">toCommonFanSpeed</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  <a class="code" href="structstdAc_1_1state__t.html">stdAc::state_t</a> <a class="code" href="classIRKelonAc.html#a4ae759003ba0abd4a29971745c5971a3">toCommon</a>(<span class="keyword">const</span> <a class="code" href="structstdAc_1_1state__t.html">stdAc::state_t</a> *prev = <span class="keyword">nullptr</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <a class="code" href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a> <a class="code" href="classIRKelonAc.html#adac302ee5223d520789f5d800c0889cc">toString</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#ifndef UNIT_TEST</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#a7384fd6a4fb513dd56ff6b5c9f40e922">  129</a></span>&#160;  <a class="code" href="classIRsend.html">IRsend</a> <a class="code" href="classIRKelonAc.html#a7384fd6a4fb513dd56ff6b5c9f40e922">_irsend</a>;  </div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor">#else  // UNIT_TEST</span></div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  IRsendTest <a class="code" href="classIRKelonAc.html#a7384fd6a4fb513dd56ff6b5c9f40e922">_irsend</a>;  </div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor">#endif  // UNIT_TEST</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#aeeaf52576cde829c1d7adb72c4dfe029">  135</a></span>&#160;  <a class="code" href="unionKelonProtocol.html">KelonProtocol</a> <a class="code" href="classIRKelonAc.html#aeeaf52576cde829c1d7adb72c4dfe029">_</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;  <span class="comment">// Used when exiting supercool mode</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#aff35eb29e8e612acf701cef6c53ecaba">  138</a></span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#aff35eb29e8e612acf701cef6c53ecaba">_previousMode</a> = 0;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#ab65d1fd26a3e72d1d07e6fca1cc44a1f">  139</a></span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#ab65d1fd26a3e72d1d07e6fca1cc44a1f">_previousTemp</a> = <a class="code" href="ir__Kelon_8h.html#abc7695e69ede30a8eeed9f21f47a9ee6">kKelonMinTemp</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classIRKelonAc.html#abd9285d41e26dccb5d09a32662adb1b4">  140</a></span>&#160;  uint8_t <a class="code" href="classIRKelonAc.html#abd9285d41e26dccb5d09a32662adb1b4">_previousFan</a> = <a class="code" href="ir__Kelon_8h.html#a71f311bc7e9982f96069d186240bafb6">kKelonFanAuto</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;};</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#endif  // IR_KELON_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassIRKelonAc_html_a45d82807dee13f01f6bac9f7fe4ab42e"><div class="ttname"><a href="classIRKelonAc.html#a45d82807dee13f01f6bac9f7fe4ab42e">IRKelonAc::getMode</a></div><div class="ttdeci">uint8_t getMode(void) const</div><div class="ttdoc">Get the current operation mode setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:256</div></div>
<div class="ttc" id="aclassIRKelonAc_html_afbc72e3dfaa1782fa84e6aae9433dd42"><div class="ttname"><a href="classIRKelonAc.html#afbc72e3dfaa1782fa84e6aae9433dd42">IRKelonAc::getSleep</a></div><div class="ttdeci">bool getSleep(void) const</div><div class="ttdoc">Is the sleep setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:274</div></div>
<div class="ttc" id="aclassIRKelonAc_html_ad6265f10ad249f82b3fcf97f42213274"><div class="ttname"><a href="classIRKelonAc.html#ad6265f10ad249f82b3fcf97f42213274">IRKelonAc::ensurePower</a></div><div class="ttdeci">void ensurePower(const bool on)</div><div class="ttdoc">Since the AC does not support actually setting the power state to a known value, this utility allow e...</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:130</div></div>
<div class="ttc" id="aclassIRKelonAc_html_af752008b00838cf61cc53e631abd8c84"><div class="ttname"><a href="classIRKelonAc.html#af752008b00838cf61cc53e631abd8c84">IRKelonAc::setRaw</a></div><div class="ttdeci">void setRaw(const uint64_t new_code)</div><div class="ttdoc">Set the raw state of the object.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:341</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aff35eb29e8e612acf701cef6c53ecaba"><div class="ttname"><a href="classIRKelonAc.html#aff35eb29e8e612acf701cef6c53ecaba">IRKelonAc::_previousMode</a></div><div class="ttdeci">uint8_t _previousMode</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:138</div></div>
<div class="ttc" id="air__Kelon_8h_html_a71f311bc7e9982f96069d186240bafb6"><div class="ttname"><a href="ir__Kelon_8h.html#a71f311bc7e9982f96069d186240bafb6">kKelonFanAuto</a></div><div class="ttdeci">const uint8_t kKelonFanAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:63</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a638145dbdf9d30d20796a9d5e931a4d8"><div class="ttname"><a href="unionKelonProtocol.html#a638145dbdf9d30d20796a9d5e931a4d8">KelonProtocol::Fan</a></div><div class="ttdeci">uint8_t Fan</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:39</div></div>
<div class="ttc" id="anamespacestdAc_html_a8bb0dbf18fe69f639f4ac0b3ff133383"><div class="ttname"><a href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a></div><div class="ttdeci">fanspeed_t</div><div class="ttdoc">Common A/C settings for Fan Speeds.</div><div class="ttdef"><b>Definition:</b> IRsend.h:61</div></div>
<div class="ttc" id="aunionKelonProtocol_html_afefb71dce13bc346164cbbbba493eb69"><div class="ttname"><a href="unionKelonProtocol.html#afefb71dce13bc346164cbbbba493eb69">KelonProtocol::Mode</a></div><div class="ttdeci">uint8_t Mode</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:44</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a244cffa76f010df00e78029afccea745"><div class="ttname"><a href="unionKelonProtocol.html#a244cffa76f010df00e78029afccea745">KelonProtocol::SuperCoolEnabled2</a></div><div class="ttdeci">uint8_t SuperCoolEnabled2</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:53</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a9406ac65db0b49d31d34344103faeb62"><div class="ttname"><a href="classIRKelonAc.html#a9406ac65db0b49d31d34344103faeb62">IRKelonAc::getRaw</a></div><div class="ttdeci">uint64_t getRaw(void) const</div><div class="ttdoc">Get the raw state of the object, suitable to be sent with the appropriate IRsend object method.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:337</div></div>
<div class="ttc" id="air__Kelon_8h_html_ad0217fb386e35b899fa63c0917605de1"><div class="ttname"><a href="ir__Kelon_8h.html#ad0217fb386e35b899fa63c0917605de1">kKelonDryGradeMin</a></div><div class="ttdeci">const int8_t kKelonDryGradeMin</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:71</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a37223c374b8bb82dd5bf5059b0903b4f"><div class="ttname"><a href="classIRKelonAc.html#a37223c374b8bb82dd5bf5059b0903b4f">IRKelonAc::setToggleSwingVertical</a></div><div class="ttdeci">void setToggleSwingVertical(const bool toggle)</div><div class="ttdoc">Request toggling the vertical swing - will be reset to false after sending.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:260</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a89dc5481508f53095896b5b4fc688f4e"><div class="ttname"><a href="unionKelonProtocol.html#a89dc5481508f53095896b5b4fc688f4e">KelonProtocol::preamble</a></div><div class="ttdeci">uint8_t preamble[2]</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:38</div></div>
<div class="ttc" id="aIRsend_8h_html"><div class="ttname"><a href="IRsend_8h.html">IRsend.h</a></div></div>
<div class="ttc" id="aclassIRKelonAc_html_abc971aa5df1cb04d804b1b0eab5282a2"><div class="ttname"><a href="classIRKelonAc.html#abc971aa5df1cb04d804b1b0eab5282a2">IRKelonAc::calibrate</a></div><div class="ttdeci">int8_t calibrate(void)</div><div class="ttdoc">Run the calibration to calculate uSec timing offsets for this platform.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:88</div></div>
<div class="ttc" id="aunionKelonProtocol_html_ad6c550a067c1d16cf86cdfb048e0785f"><div class="ttname"><a href="unionKelonProtocol.html#ad6c550a067c1d16cf86cdfb048e0785f">KelonProtocol::TimerEnabled</a></div><div class="ttdeci">uint8_t TimerEnabled</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:45</div></div>
<div class="ttc" id="air__Kelon_8h_html_a04169c90255e4a83f9fd51f67ca07e54"><div class="ttname"><a href="ir__Kelon_8h.html#a04169c90255e4a83f9fd51f67ca07e54">kKelonMaxTemp</a></div><div class="ttdeci">const uint8_t kKelonMaxTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:74</div></div>
<div class="ttc" id="aclassIRKelonAc_html_adac302ee5223d520789f5d800c0889cc"><div class="ttname"><a href="classIRKelonAc.html#adac302ee5223d520789f5d800c0889cc">IRKelonAc::toString</a></div><div class="ttdeci">String toString(void) const</div><div class="ttdoc">Convert the internal settings into a human readable string.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:428</div></div>
<div class="ttc" id="aclassIRsend_html"><div class="ttname"><a href="classIRsend.html">IRsend</a></div><div class="ttdoc">Class for sending all basic IR protocols.</div><div class="ttdef"><b>Definition:</b> IRsend.h:237</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a5cbd812734ed55a33aba1b5c8dc90e22"><div class="ttname"><a href="unionKelonProtocol.html#a5cbd812734ed55a33aba1b5c8dc90e22">KelonProtocol::raw</a></div><div class="ttdeci">uint64_t raw</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:35</div></div>
<div class="ttc" id="aclassIRsend_html_ad1776aa6c699f9eeca1eef9bb4fe355b"><div class="ttname"><a href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">IRsend::calibrate</a></div><div class="ttdeci">int8_t calibrate(uint16_t hz=38000U)</div><div class="ttdoc">Calculate &amp; set any offsets to account for execution times during sending.</div><div class="ttdef"><b>Definition:</b> IRsend.cpp:207</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a4fa220013c5c72afbcbeba4ac0063feb"><div class="ttname"><a href="classIRKelonAc.html#a4fa220013c5c72afbcbeba4ac0063feb">IRKelonAc::getToggleSwingVertical</a></div><div class="ttdeci">bool getToggleSwingVertical(void) const</div><div class="ttdoc">Get whether the swing mode is set to be toggled.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:266</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a038287955eb4d2a0fa6d149d43865fcc"><div class="ttname"><a href="classIRKelonAc.html#a038287955eb4d2a0fa6d149d43865fcc">IRKelonAc::begin</a></div><div class="ttdeci">void begin(void)</div><div class="ttdoc">Set up hardware to be able to send a message.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:156</div></div>
<div class="ttc" id="aclassIRKelonAc_html"><div class="ttname"><a href="classIRKelonAc.html">IRKelonAc</a></div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:77</div></div>
<div class="ttc" id="air__Kelon_8h_html_a93d7558b282b38d11e9a04e95410ff5c"><div class="ttname"><a href="ir__Kelon_8h.html#a93d7558b282b38d11e9a04e95410ff5c">kKelonFanMedium</a></div><div class="ttdeci">const uint8_t kKelonFanMedium</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:68</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_afbeda3fd1bdc8c37d01bdf9f5c8274ff"><div class="ttname"><a href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a></div><div class="ttdeci">std::string String</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1521</div></div>
<div class="ttc" id="air__Kelon_8h_html_a0bc24153f4463980e3db6069fdd2d1d6"><div class="ttname"><a href="ir__Kelon_8h.html#a0bc24153f4463980e3db6069fdd2d1d6">kKelonModeSmart</a></div><div class="ttdeci">const uint8_t kKelonModeSmart</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:59</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a4c19f0aa6d12b41aaae296e8c89961e0"><div class="ttname"><a href="classIRKelonAc.html#a4c19f0aa6d12b41aaae296e8c89961e0">IRKelonAc::stateReset</a></div><div class="ttdeci">void stateReset(void)</div><div class="ttdoc">Reset the internals of the object to a known good state.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:104</div></div>
<div class="ttc" id="air__Kelon_8h_html_a4ced8b60523afafb93f7b86914be34d6"><div class="ttname"><a href="ir__Kelon_8h.html#a4ced8b60523afafb93f7b86914be34d6">kKelonModeDry</a></div><div class="ttdeci">const uint8_t kKelonModeDry</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:61</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a8ecc24641976085aed802e6e1c67ea9a"><div class="ttname"><a href="classIRKelonAc.html#a8ecc24641976085aed802e6e1c67ea9a">IRKelonAc::setFan</a></div><div class="ttdeci">void setFan(const uint8_t speed)</div><div class="ttdoc">Set the speed of the fan.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:181</div></div>
<div class="ttc" id="aclassIRKelonAc_html_af534911523b5372e25327bf85a5b3b66"><div class="ttname"><a href="classIRKelonAc.html#af534911523b5372e25327bf85a5b3b66">IRKelonAc::send</a></div><div class="ttdeci">void send(const uint16_t repeat=kNoRepeat)</div><div class="ttdoc">Send the current internal state as an IR message.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:114</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a5055123f4ca8f2efdd10ed3dc5d86e50"><div class="ttname"><a href="unionKelonProtocol.html#a5055123f4ca8f2efdd10ed3dc5d86e50">KelonProtocol::PowerToggle</a></div><div class="ttdeci">uint8_t PowerToggle</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:40</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html"><div class="ttname"><a href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a></div></div>
<div class="ttc" id="aclassIRKelonAc_html_af4dfb42ff38f252961a8806ae7437055"><div class="ttname"><a href="classIRKelonAc.html#af4dfb42ff38f252961a8806ae7437055">IRKelonAc::setTemp</a></div><div class="ttdeci">void setTemp(const uint8_t degrees)</div><div class="ttdoc">Set the temperature setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:168</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a77c79c1f41429ae2dbaee0254eeb6af1"><div class="ttname"><a href="classIRKelonAc.html#a77c79c1f41429ae2dbaee0254eeb6af1">IRKelonAc::toCommonFanSpeed</a></div><div class="ttdeci">static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)</div><div class="ttdoc">Convert a native fan speed to it's stdAc::fanspeed_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:386</div></div>
<div class="ttc" id="air__Kelon_8h_html_aabab51724f0036fdfb8a27272ef2b0ad"><div class="ttname"><a href="ir__Kelon_8h.html#aabab51724f0036fdfb8a27272ef2b0ad">kKelonModeCool</a></div><div class="ttdeci">const uint8_t kKelonModeCool</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:60</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a7fd0c539dc8ec94e5962c57091c230f0"><div class="ttname"><a href="unionKelonProtocol.html#a7fd0c539dc8ec94e5962c57091c230f0">KelonProtocol::TimerHours</a></div><div class="ttdeci">uint8_t TimerHours</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:48</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_a1a49dde7ffbd753f7756cf0c9dc6d826"><div class="ttname"><a href="IRremoteESP8266_8h.html#a1a49dde7ffbd753f7756cf0c9dc6d826">kNoRepeat</a></div><div class="ttdeci">const uint16_t kNoRepeat</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1145</div></div>
<div class="ttc" id="aunionKelonProtocol_html_ac0c1c5efd6837df7101355cddd2d41bb"><div class="ttname"><a href="unionKelonProtocol.html#ac0c1c5efd6837df7101355cddd2d41bb">KelonProtocol::pad1</a></div><div class="ttdeci">uint8_t pad1</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:50</div></div>
<div class="ttc" id="aclassIRKelonAc_html_abd9285d41e26dccb5d09a32662adb1b4"><div class="ttname"><a href="classIRKelonAc.html#abd9285d41e26dccb5d09a32662adb1b4">IRKelonAc::_previousFan</a></div><div class="ttdeci">uint8_t _previousFan</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:140</div></div>
<div class="ttc" id="aunionKelonProtocol_html_ad43fd448895765e29c108df3233de7a6"><div class="ttname"><a href="unionKelonProtocol.html#ad43fd448895765e29c108df3233de7a6">KelonProtocol::DehumidifierGrade</a></div><div class="ttdeci">uint8_t DehumidifierGrade</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:42</div></div>
<div class="ttc" id="air__Kelon_8h_html_a924a4138c047d7db1c5f07ff94e66f51"><div class="ttname"><a href="ir__Kelon_8h.html#a924a4138c047d7db1c5f07ff94e66f51">kKelonModeHeat</a></div><div class="ttdeci">const uint8_t kKelonModeHeat</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:58</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aec38ea2d05bfece8314c5b7a45d19dbc"><div class="ttname"><a href="classIRKelonAc.html#aec38ea2d05bfece8314c5b7a45d19dbc">IRKelonAc::setDryGrade</a></div><div class="ttdeci">void setDryGrade(const int8_t grade)</div><div class="ttdoc">Set the dehumidification intensity.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:198</div></div>
<div class="ttc" id="aclassIRKelonAc_html_acb502b372e6a077f7a7ed8f95f30e991"><div class="ttname"><a href="classIRKelonAc.html#acb502b372e6a077f7a7ed8f95f30e991">IRKelonAc::setSupercool</a></div><div class="ttdeci">void setSupercool(const bool on)</div><div class="ttdoc">Control the current super cool mode setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:278</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a4e24235f913ebda516a14fb6629a0a67"><div class="ttname"><a href="classIRKelonAc.html#a4e24235f913ebda516a14fb6629a0a67">IRKelonAc::getTimer</a></div><div class="ttdeci">uint16_t getTimer(void) const</div><div class="ttdoc">Get the set timer. Timer set time is deleted once the command is sent, so calling this after send() w...</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:319</div></div>
<div class="ttc" id="air__Kelon_8h_html_abc7695e69ede30a8eeed9f21f47a9ee6"><div class="ttname"><a href="ir__Kelon_8h.html#abc7695e69ede30a8eeed9f21f47a9ee6">kKelonMinTemp</a></div><div class="ttdeci">const uint8_t kKelonMinTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:73</div></div>
<div class="ttc" id="aclassIRKelonAc_html_ae27dcc27fd6f972e20f92063b33f4ab3"><div class="ttname"><a href="classIRKelonAc.html#ae27dcc27fd6f972e20f92063b33f4ab3">IRKelonAc::convertFan</a></div><div class="ttdeci">static uint8_t convertFan(const stdAc::fanspeed_t fan)</div><div class="ttdoc">Convert a standard A/C fan speed (stdAc::fanspeed_t) into it a native speed.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:359</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a7384fd6a4fb513dd56ff6b5c9f40e922"><div class="ttname"><a href="classIRKelonAc.html#a7384fd6a4fb513dd56ff6b5c9f40e922">IRKelonAc::_irsend</a></div><div class="ttdeci">IRsend _irsend</div><div class="ttdoc">Instance of the IR send class.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:129</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aad3fc6341d978c41eb3dab1259a1ab54"><div class="ttname"><a href="classIRKelonAc.html#aad3fc6341d978c41eb3dab1259a1ab54">IRKelonAc::IRKelonAc</a></div><div class="ttdeci">IRKelonAc(uint16_t pin, bool inverted=false, bool use_modulation=true)</div><div class="ttdoc">Class constructor.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:99</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a06eb8f550eea47a5620c29290d362457"><div class="ttname"><a href="unionKelonProtocol.html#a06eb8f550eea47a5620c29290d362457">KelonProtocol::SmartModeEnabled</a></div><div class="ttdeci">uint8_t SmartModeEnabled</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:49</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a72a044058e0339bc7097cee53966a25f"><div class="ttname"><a href="unionKelonProtocol.html#a72a044058e0339bc7097cee53966a25f">KelonProtocol::TimerHalfHour</a></div><div class="ttdeci">uint8_t TimerHalfHour</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:47</div></div>
<div class="ttc" id="aclassIRKelonAc_html_adba50d061f4f6f2eb1dca61355c3017e"><div class="ttname"><a href="classIRKelonAc.html#adba50d061f4f6f2eb1dca61355c3017e">IRKelonAc::getFan</a></div><div class="ttdeci">uint8_t getFan(void) const</div><div class="ttdoc">Get the current fan speed setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:192</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a46d1647685a3c62aaf658f5971d86268"><div class="ttname"><a href="unionKelonProtocol.html#a46d1647685a3c62aaf658f5971d86268">KelonProtocol::SwingVToggle</a></div><div class="ttdeci">uint8_t SwingVToggle</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:43</div></div>
<div class="ttc" id="aIRutils_8h_html"><div class="ttname"><a href="IRutils_8h.html">IRutils.h</a></div></div>
<div class="ttc" id="aclassIRKelonAc_html_aeeaf52576cde829c1d7adb72c4dfe029"><div class="ttname"><a href="classIRKelonAc.html#aeeaf52576cde829c1d7adb72c4dfe029">IRKelonAc::_</a></div><div class="ttdeci">KelonProtocol _</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:135</div></div>
<div class="ttc" id="aclassIRKelonAc_html_abe299f1f7b54ca43546522050a9902f4"><div class="ttname"><a href="classIRKelonAc.html#abe299f1f7b54ca43546522050a9902f4">IRKelonAc::setSleep</a></div><div class="ttdeci">void setSleep(const bool on)</div><div class="ttdoc">Control the current sleep (quiet) setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:270</div></div>
<div class="ttc" id="aunionKelonProtocol_html_acce94332bf7fa92e7c52b64e63ee243b"><div class="ttname"><a href="unionKelonProtocol.html#acce94332bf7fa92e7c52b64e63ee243b">KelonProtocol::SleepEnabled</a></div><div class="ttdeci">uint8_t SleepEnabled</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:41</div></div>
<div class="ttc" id="aunionKelonProtocol_html"><div class="ttname"><a href="unionKelonProtocol.html">KelonProtocol</a></div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:34</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a4ae759003ba0abd4a29971745c5971a3"><div class="ttname"><a href="classIRKelonAc.html#a4ae759003ba0abd4a29971745c5971a3">IRKelonAc::toCommon</a></div><div class="ttdeci">stdAc::state_t toCommon(const stdAc::state_t *prev=nullptr) const</div><div class="ttdoc">Convert the internal A/C object state to it's stdAc::state_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:397</div></div>
<div class="ttc" id="aclassIRKelonAc_html_acf437757e5ee534da08cf1d0ec1c7445"><div class="ttname"><a href="classIRKelonAc.html#acf437757e5ee534da08cf1d0ec1c7445">IRKelonAc::getTogglePower</a></div><div class="ttdeci">bool getTogglePower(void) const</div><div class="ttdoc">Get whether toggling power will be requested.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:164</div></div>
<div class="ttc" id="aclassIRKelonAc_html_abd5fa54411ed2bd54da47f7e71bb9411"><div class="ttname"><a href="classIRKelonAc.html#abd5fa54411ed2bd54da47f7e71bb9411">IRKelonAc::getDryGrade</a></div><div class="ttdeci">int8_t getDryGrade(void) const</div><div class="ttdoc">Get the current dehumidification intensity setting. In smart mode, this controls the temperature adju...</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:214</div></div>
<div class="ttc" id="aunionKelonProtocol_html_ace732d42dc9ad0f46117c5d98dc836d5"><div class="ttname"><a href="unionKelonProtocol.html#ace732d42dc9ad0f46117c5d98dc836d5">KelonProtocol::Temperature</a></div><div class="ttdeci">uint8_t Temperature</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:46</div></div>
<div class="ttc" id="air__Kelon_8h_html_a4bd60c6979883d711dbd1b6019164963"><div class="ttname"><a href="ir__Kelon_8h.html#a4bd60c6979883d711dbd1b6019164963">kKelonFanMax</a></div><div class="ttdeci">const uint8_t kKelonFanMax</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:69</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aee7fef2e11d5bfebcd866f27f46979a2"><div class="ttname"><a href="classIRKelonAc.html#aee7fef2e11d5bfebcd866f27f46979a2">IRKelonAc::toCommonMode</a></div><div class="ttdeci">static stdAc::opmode_t toCommonMode(const uint8_t mode)</div><div class="ttdoc">Convert a native mode to it's stdAc::opmode_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:373</div></div>
<div class="ttc" id="aclassIRKelonAc_html_ad46eec811631a9b1732bec75cccd393c"><div class="ttname"><a href="classIRKelonAc.html#ad46eec811631a9b1732bec75cccd393c">IRKelonAc::getSupercool</a></div><div class="ttdeci">bool getSupercool(void) const</div><div class="ttdoc">Is the super cool mode setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:293</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a07276300448ba5caa961e1d2a6714780"><div class="ttname"><a href="unionKelonProtocol.html#a07276300448ba5caa961e1d2a6714780">KelonProtocol::pad2</a></div><div class="ttdeci">uint8_t pad2</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:52</div></div>
<div class="ttc" id="air__Kelon_8h_html_a39b42afb41b16a05e188faf1e17ab1a6"><div class="ttname"><a href="ir__Kelon_8h.html#a39b42afb41b16a05e188faf1e17ab1a6">kKelonModeFan</a></div><div class="ttdeci">const uint8_t kKelonModeFan</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:62</div></div>
<div class="ttc" id="air__Kelon_8h_html_aaf96912cb4f2180a4f8e45ab15a62fdb"><div class="ttname"><a href="ir__Kelon_8h.html#aaf96912cb4f2180a4f8e45ab15a62fdb">kKelonDryGradeMax</a></div><div class="ttdeci">const int8_t kKelonDryGradeMax</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:72</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a0c7c47dabb377efe2079b16a14f4ca75"><div class="ttname"><a href="classIRKelonAc.html#a0c7c47dabb377efe2079b16a14f4ca75">IRKelonAc::setMode</a></div><div class="ttdeci">void setMode(const uint8_t mode)</div><div class="ttdoc">Set the desired operation mode.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:221</div></div>
<div class="ttc" id="aunionKelonProtocol_html_a2e7513510d69ef845d823cab658f40ae"><div class="ttname"><a href="unionKelonProtocol.html#a2e7513510d69ef845d823cab658f40ae">KelonProtocol::SuperCoolEnabled1</a></div><div class="ttdeci">uint8_t SuperCoolEnabled1</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:51</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a19d6b061a5a42de460078c32e406c058"><div class="ttname"><a href="classIRKelonAc.html#a19d6b061a5a42de460078c32e406c058">IRKelonAc::setTimerEnabled</a></div><div class="ttdeci">void setTimerEnabled(const bool on)</div><div class="ttdoc">Enable or disable the timer. Note that in order to enable the timer the minutes must be set with setT...</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:328</div></div>
<div class="ttc" id="air__Kelon_8h_html_acac1aee0b3063ff82283b86714722eb9"><div class="ttname"><a href="ir__Kelon_8h.html#acac1aee0b3063ff82283b86714722eb9">kKelonFanMin</a></div><div class="ttdeci">const uint8_t kKelonFanMin</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:67</div></div>
<div class="ttc" id="astructstdAc_1_1state__t_html"><div class="ttname"><a href="structstdAc_1_1state__t.html">stdAc::state_t</a></div><div class="ttdoc">Structure to hold a common A/C state.</div><div class="ttdef"><b>Definition:</b> IRsend.h:114</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a3ac8b212ee8606bbd2f4668908daf0fa"><div class="ttname"><a href="classIRKelonAc.html#a3ac8b212ee8606bbd2f4668908daf0fa">IRKelonAc::convertMode</a></div><div class="ttdeci">static uint8_t convertMode(const stdAc::opmode_t mode)</div><div class="ttdoc">Convert a standard A/C mode (stdAc::opmode_t) into it a native mode.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:346</div></div>
<div class="ttc" id="aclassIRKelonAc_html_a5ff072da7dc5215bfb9140c638f10061"><div class="ttname"><a href="classIRKelonAc.html#a5ff072da7dc5215bfb9140c638f10061">IRKelonAc::getTimerEnabled</a></div><div class="ttdeci">bool getTimerEnabled(void) const</div><div class="ttdoc">Get the current timer status.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:332</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aaf519bf89bb0b93513c59051ed61a052"><div class="ttname"><a href="classIRKelonAc.html#aaf519bf89bb0b93513c59051ed61a052">IRKelonAc::getTemp</a></div><div class="ttdeci">uint8_t getTemp(void) const</div><div class="ttdoc">Get the current temperature setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:177</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aebbebeaf41b54b6b0387b5a71fa92f28"><div class="ttname"><a href="classIRKelonAc.html#aebbebeaf41b54b6b0387b5a71fa92f28">IRKelonAc::setTimer</a></div><div class="ttdeci">void setTimer(const uint16_t mins)</div><div class="ttdoc">Set the timer time and enable it. Timer is an off timer if the unit is on, it is an on timer if the u...</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:299</div></div>
<div class="ttc" id="aclassIRKelonAc_html_aa892e8e4c9865cccb123d793ae5f9550"><div class="ttname"><a href="classIRKelonAc.html#aa892e8e4c9865cccb123d793ae5f9550">IRKelonAc::setTogglePower</a></div><div class="ttdeci">void setTogglePower(const bool toggle)</div><div class="ttdoc">Request toggling power - will be reset to false after sending.</div><div class="ttdef"><b>Definition:</b> ir_Kelon.cpp:160</div></div>
<div class="ttc" id="aclassIRKelonAc_html_ab65d1fd26a3e72d1d07e6fca1cc44a1f"><div class="ttname"><a href="classIRKelonAc.html#ab65d1fd26a3e72d1d07e6fca1cc44a1f">IRKelonAc::_previousTemp</a></div><div class="ttdeci">uint8_t _previousTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelon.h:139</div></div>
<div class="ttc" id="anamespacestdAc_html_a99ad268c783486f9b3207cb78f48444f"><div class="ttname"><a href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a></div><div class="ttdeci">opmode_t</div><div class="ttdoc">Common A/C settings for A/C operating modes.</div><div class="ttdef"><b>Definition:</b> IRsend.h:49</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
